// bzoj2940
// 题意：给定三个木板长为1*a, 1*b, 1*c，已知 1*p 的木板，现在
//       轮流取木板放到长木板上，不能重叠，不能超出界限，最后
//       谁不能放谁就输。问先手是不是必胜。
//
// 题意：是个NIM模型的sg，预处理求出sg函数即可。
//
// run: $exec < input
#include <iostream>
#include <cstring>

int const maxn = 1007;
bool mark[maxn];
int sg[maxn];
int a[3];

int main()
{
	std::ios::sync_with_stdio(false);
	for (int i = 0; i < 3; i++) std::cin >> a[i];

	for (int i = 1; i <= 1000; i++) {
		std::memset(mark, 0, sizeof(mark));
		for (int j = 0; j < 3; j++)
			for (int k = 0; k <= i - a[j] - k; k++)
				mark[sg[k] ^ sg[i - k - a[j]]] = true;

		for (int j = 0; j <= i; j++)
			if (!mark[j]) {
				sg[i] = j;
				break;
			}
	}

	int m;
	std::cin >> m;
	for (int i = 0, p; i < m; i++) {
		std::cin >> p;
		std::cout << (sg[p] ? 1 : 2) << '\n';
	}
}
